Oracle 中 rownum、row | 您所在的位置:网站首页 › Oracle rownum和order by谁先执行 › Oracle 中 rownum、row |
Ø 简介 在之前还以为在 Oracle 中只能使用 rownum 这个伪列来实现分页,其实不然。在 Oracle 也与 MSSQL 一样,同样支持 row_number 函数,以及和 rank、dense_rank 这两个函数。下面就来讨论 rownum 与 row_number 函数的区别,以及另外两个函数的使用。 1. rownum 的使用 2. rownum 使用需谨慎 3. row_number() 函数 4. rank() 与 dense_rank() 函数 5. over() 函数结合聚合函数的使用 6. 综合案例
1. rownum 的使用 rownum 是 Oracle 在查询时对结果集输出的一个伪列,这个列并不是真实存在的,当我们进行每一个 SELECT 查询时,Oracle 会帮我们自动生成这个序列号(rownum),该序列号是顺序递增的,用于标识行号。通常可以借助 rownum 来实现分页,下面来看具体实现,比如我们需要取 emp 表中4到6行的记录: 1) 首先,我们来看一个奇怪的现象 SELECT * FROM emp WHERE rownum >= 4 AND rownum = 3不成立,所以该记录会被排除;然后再取第二条,此时任然 rownum = 1,因为只有成功满足一条记录,rownum 才会加1,所以不满足又被排除掉了。这样依次类推,最终都不满足条件,所以全部都被排除掉了。所以,以下语句始终查不出数据: SELECT * FROM emp WHERE rownum > 1;
然后,在看另外一边(就是接下来用的这种判断方式),首先取第一条(满足),第二条也满足,直到(rownum = 7) = 4 AND rnum |
CopyRight 2018-2019 实验室设备网 版权所有 |